Advanced playlist creation

ABSTRACT

Media players and associated methods are described that may allow a user to initiate playback of content or other media assets based on information associated with content. A media player may receive information associated with content from a user selection of a song, movie, photo, or the like. Based on the information, the media player may procure other additional content to be added to a playlist. The media player may automatically add to a playlist or modify a playlist with content that matches a user&#39;s preferences for artists, albums, genres, or the like. The user may interact with the media player to determine what content is added and how a playlist should be mixed. The user may specify how much of any content procured by the media player should be present in the playlist without the need to specify each individual item that constitutes a playlist.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application claims priority to and the benefit of U.S. ProvisionalApplication No. 60/969,846, filed Sep. 4, 2007 and entitled “AdvancedPlaylist Creation” and U.S. Provisional Patent Application No.60/969,850, filed Sep. 4, 2007 and entitled “Auto-Tagging of Aliases,”the entire disclosures of which are herein incorporated by reference forall purposes.

This application is related to co-pending U.S. patent application Ser.No. 12/145,258, filed and entitled “Auto-Tagging of Aliases,” the entiredisclosure of which is herein incorporated by reference for allpurposes.

BACKGROUND OF THE INVENTION

Electronic devices, such as personal computers, laptops, portable mediaplayers, cellular phones, personal digital assists (PDAs), and the like,are prevalent in today's marketplace, as are the peripheral electronicdevices that support their use, such as docking stations and the like.As competition in the personal electronics marketplace becomes ever moreheated, consumers have become more demanding in terms of both thefunctionality and use of such devices.

One popular function may be the storage and output of content, such asmusic, images, photos, and movies. Improving compression methods, likeMPEG-standards, can result in less storage capacity required making itmore convenient to store tens of thousands of songs and photos, andseveral full-length DVD quality movies. Moreover, distribution via theInternet can make it easier to obtain multimedia content.

In general, navigating through all of the content stored on a device,such as a media player, can be difficult when the media player is loadedwith content from different artists, albums, and genres. Typically, aplaylist may allow a user to consume content in a sequence orpredetermined manner. In its most general form, a playlist may simply bea list of songs. Additionally, the playlist may be used to order a listof songs played during a given time period. A playlist can be defined,stored, and selected to run either in sequence or, if a random playlistfunction is selected, in a random order. The playlists' uses may includeallowing a particular desired musical atmosphere to be created andmaintained without constant user interaction, or to allow a variety ofdifferent styles of music be played, again without maintenance.

However, a user typically creates the playlist by adding songs one byone, or by getting the playlist from another user that created theplaylist. This process can become tedious if there are thousands ofsongs to choose from.

Accordingly, what is desired is to solve problems relating to theplayback of content or other media assets using electronic devices, someof which may be discussed herein. Additionally, what is desired is toreduce drawbacks related to the playback of content or other mediaassets using electronic devices, some of which may be discussed herein.

BRIEF SUMMARY OF THE INVENTION

The present invention relates generally to media players. Moreparticularly, to techniques for advanced playlist creation.

In various embodiments, an electronic device, such as a media player orportable media device, can include features for automatically generatingplaylists. A user may interact with the media player to select content.Based on information associated with the content, the media player maydetermine or otherwise obtain additional content to be automaticallyadded to playlists. One or more playlists can be generated based on theautomatically determined content.

In some embodiments, a media player or portable media device may createplaylists based on information associated with content that includes oneor more of title information, size information, date information, genreinformation, album information, artist information, or the like. Themedia player may obtain the information from metadata or from othersources, such as the Internet. In further embodiments, a user mayinteract with the media player to specify who much of the automaticallydetermined content to be added to a playlist. The media player mayreceived a weighting value associated with the determined content. Themedia player then may generate a playlist with portions or selections ofthe automatically determined content obtained in response to theweighting value.

In still further embodiments, a media player or portable media devicemay modify or update existing playlists. The media player may mixautomatically determined content into one or more pre-existing playlist.The mixing may occur automatically or in response to a user interactingwith the media player to specifying what content and how much to add,and which playlists to update. In some embodiments, the media player mayprovide an auditory or visual indication to the user conveying whatcontent and how much content has been added to a playlist.

In still further embodiments, a media player or portable media devicemay include a media library. The media player may automaticallydetermining additional content to add to a playlist based on informationassociated with a song, movie, image, the like, in response to queryingthe media library using on the information. In some embodiments, themedia player may construct playlists as nested playlists.

A further understanding of the nature and the advantages of theinventions disclosed herein may be realized by reference of theremaining portions of the specification and the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to better describe and illustrate embodiments and/or examplesof those inventions disclosed herein, reference may be made to one ormore accompanying drawings. The additional details or examples used todescribe the accompanying drawings should not be considered aslimitations to the scope of any of the disclosed inventions, thepresently described embodiments and/or examples, and the presentlyunderstood best mode of these inventions.

FIG. 1 is a block diagram of a media player that may incorporateembodiments of the present invention;

FIG. 2 is a simplified flowchart of a method for generating a playlistin one embodiment according to the present invention;

FIG. 3 is a flowchart of a method for generating a playlist based oninformation associated with one or more songs in one embodimentaccording to the present invention;

FIG. 4 is a block diagram illustrating playlist generation in oneembodiment according to the present invention;

FIGS. 5A and 5B are sample graphical user interfaces (GUIs) in oneembodiment according to the present invention; and

FIG. 6 is a simplified block diagram of a computer system that mayincorporate embodiments of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In various embodiments, an electronic device, such as a media player orportable media device, can include features directed to advancedplaylist creation. For example, a user may interact with a media playerto select content, playlists, or other media assets. The media playermay obtain information about the selection, and use that information toprocure additional content or other media assets that the user wouldlikely find interesting. Based on metadata or other informationassociated with songs, movies, podcasts, photos, or other media assets,the media player may automatically procure additional content for theuser. The media player may create or modify playlists with thediscovered content.

FIG. 1 is a block diagram of media player 100 that may incorporateembodiments of the present invention. In general, a media player storescontent and/or media assets, such as audio tracks, movies, or photosthat can be played or displayed on the media player. One example ofmedia player 100 can be the iPod® media player, which is available fromApple, Inc. of Cupertino, Calif. Another example of media player 100 canbe a personal computer, such as a laptop or desktop.

In this example, media player 100 includes processor 110, storage device120, user interface 130, and communications interface 140. Processor 110can control various functionalities associated with media player 100.Media play 100 may output audio content, video content, image content,and the like. Media player 100 may also output metadata or otherinformation associated with content, such as track information and albumart.

Typically, a user may load or store content onto media player 100 usingstorage device 120. Storage device 120 can include read-only memory(ROM), random access memory (RAM), non-volatile memory, flash memory,floppy disk, hard disk, or the like. A user may interact with userinterface 130 of media player 100 to view or consume content. Someexamples of user interface 130 can include buttons, click wheels, touchpads, displays, touch screens, and other input/output devices.

Media player 100 can include one or more connectors or ports that can beused to load content, retrieve content, interact with applicationsrunning on media player 100, interface with external devices, and thelike. In this example, media player 100 includes communicationsinterface 140. Some examples of communications interface 140 can includeuniversal serial bus (USB) interfaces, IEEE 1394 (or FireWire/iLink®)interfaces, universal asynchronous receiver/transmitters (UARTs), wiredand wireless network interfaces, transceivers, and the like. Mediaplayer 100 may connect to devices, accessories, private and publiccommunications networks (e.g., the Internet), or the like, usingcommunications interface 140.

In one example, media player 100 can be coupled via a wired and/orwireless connector or port to output audio and/or other information tospeakers 150. In another example, media player 100 may be coupled via awired and/or wireless connector or port to output audio and/or otherinformation to headphones 160. In yet another example, media player 100may be coupled via a wired and/or wireless connector or port tointerface with an accessory 170 or a host computer 180. The sameconnector or port may enable different connections at different times.

Media player 100 can be physically inserted into docking system 190.Media player 100 may be coupled via a wired and/or wireless connector orport to interface with docking system 190. Docking system 190 may alsoenable one or more accessory devices 195 to couple with wires orwirelessly to interface with media player 100. Many different types andfunctionalities of accessory devices 170 and 195 can interconnect to orwith media player 100. For example, an accessory may allow a remotecontrol to wirelessly control media player 100. As another example, anautomobile may include a connector into which media player 100 may beinserted such that an automobile media system can interact with mediaplayer 100, thereby allowing media content stored on media player 100 tobe played within the automobile.

In various embodiments, media player 100 can receive content or othermedia assets from a computer system (e.g., host computer 160). Thecomputer system may serve to enable a user to manage media assets storedon the computer system and/or stored on media player 100. As an example,communications interface 140 may allow media player 100 to interfacewith host computer 160. Host computer 160 may execute a media managementapplication to manage media assets, such as loading songs, movies,photos, or the like, onto media player 100. The media managementapplication may also create playlists, record or rip content, schedulecontent for playback or recording, or the like. One example of a mediamanagement application can be iTunes®, produced by Apple, Inc. ofCupertino, Calif.

In various embodiments, media player 100 can provide a user with theability to automatically create playlists. For example, a user mayselect a song, and media player 100 may create or modify playlists basedon information, such as the song's title, the song's artist, the albumassociated with the song, a genre, or the like associated with the song.Media player 100 may create the playlist, for example, using a nestedplaylist query with information provided by the user or otherinformation obtained by media player 100.

In a further example, assume a user desires to discover music based ongenres, such as rock, jazz, and R&B. Media player 100 may automaticallypopulate a playlist using a combination of songs obtained from a medialibrary that are associated with the rock, jazz, and R&B genres. A usermay further interact with media player 100 to provide values fordetermining how much of the content or other media assets procured bymedia player 100 should be added or mixed into a playlist. The user mayspecify, for example, the percentage of songs of each genre or thenumber of movies in each genre that media player 100 should use tocreate a playlist or mix into an existing playlist.

FIG. 2 is a simplified flowchart of a method for generating a playlistin one embodiment according to the present invention. The processingdepicted in FIG. 2 may be performed by software modules (e.g.,instructions or code) executed by a processor of a computer system, byhardware modules of an electronic device, or combinations thereof. FIG.2 begins in step 200.

In step 210, information associated with content is received. Forexample, media player 100 may receive input from a user indicative of atitle, artist, album, genre, subgenre, date when content wasreleased/published, decade when content was made available, and/or otherinformation associated with content. A user may interact with mediaplayer 100 to select one or more songs, photos, images, movies, motionspicture sequences, playlists, or the like, from which the informationmay be determined. In some embodiments, one or more keywords or searchterms may be received that may be used to match metadata associated withcontent or other media assets.

In step 220, other content is determined based on the informationassociated with content. The other content may include songs, movies,photos, or the like having a relationship with the content. For example,the other content may be related by album, artists, director, theme,genera, era, tags, popularity, rank, acoustics, visual data, location,or the like. In one example, media player 100 queries a content databaseto determine other content based on the information associated with thecontent. Media player 100 may generate a nested playlist query thatincludes other playlists to determine content.

Media player 100 may determine songs, for example, that have beenwritten by the same artist as a song selected by the user. Media player100 may further determine songs, for example, that have been manually orautomatically categorized into the same or substantially similar genreas a song selected by the user. Media player 100 may further determineplaylists, for example, that include a substantial majority of songs orother content that are indicative of the information associated with thecontent selected by the user. Media player 100 may further determinemovies, for example, that have been released during a particular timeperiod or decade.

In step 230, a playlist is generated based on the determine content. Ingeneral, a playlist may include a list of content, such as songs. Theplaylist may define the order of the content in the list. The playlistmay also include or define other playlists. Continuing one of theprevious examples, media player 100 may generate a playlist based on thequery results returned from a query to a content database. Media player100 may further generate the playlist based on the items of otherplaylists. Media player 100 may create new playlists, or update ormodify existing playlists, for example, using nested playlists. FIG. 2ends in step 240.

Accordingly, a media player or portable media device may allow a user toquickly discover and initiate playback of content or other media assets.Based on information about content, a media player may use an advancedplaylist creation technique to automatically procure and present to auser content or other media assets that a user likely desires. The usermay interact with the media player to create playlists of various sizesby selecting, for example, a single song. For example, a user mayinteract with media player 100 to specify the proportions or percentagesof content that has been automatically procured for addition to aplaylist.

FIG. 3 is a flowchart of a method for generating a playlist based oninformation associated with one or more songs in one embodimentaccording to the present invention. FIG. 3 begins in step 300.

In step 310, user selection of one or more songs is received. Forexample, a user may interact with a graphical user interface to selectthe one or more songs. The user may interact with a click-wheel,touchscreen, pen-based apparatus, or the like to select songs to whichthe user is interested in listening. The one or more songs may be storedon media player 100 in a media or content library. The songs may alsoaccessible via a communications network, such as the Internet. Inanother example, the user may interact with a playlist to select the oneor more songs. In a still further example, the user may identify songsfrom a plurality of songs listed in response to a search based onartist, album, genre, keyword, or the like.

In step 320, genres associated with each of the one or more songs aredetermined. For example, media player 100 may consult the contentlibrary to determine the genres associated with the one or more songs.In another example, media player 100 may extract information associatedwith a genre from a file stored on media player 100 that may also storeaudio information representing the song (e.g., MP3 ID tag). Someexamples of genres associated with music are classical, country, rock,jazz, R&B, funk, salsa, and the like. Some examples of genres associatedwith movies are drama, horror, comedy, animation, and the like.

In step 330, content associated with the determined genres is added to aplaylist. In one example, media player 100 may search a content or medialibrary for content that matches or is substantially similar to thedetermined genres. Media player 100 may then create a new playlist, andadd the content to the newly created playlist. Media player 100 mayappend the content to the bottom of a playlist. In another example,media player 100 may mix the content associated with the determinedgenres into an existing playlist. In yet another example, media player100 may insert a playlist of the determined content into anotherplaylist as a nested playlist.

In step 340, a weight (e.g., a weighting value) associated with thecontent in the playlist is received. The weight can include informationassociated with a value, percentage, selection, or the like. Forexample, a user may input a maximum number of songs for a particulargenre that the user wants organized in the playlist. In another example,the user may allocate each genre a percentage such that songs for aparticular genre are organized within the playlist based on acorresponding percentage. In a still further example, the user mayprovide a score associated with a particular artist. Media player 100then may use the score to determine a preference associated with howmuch of the artist's content can be organized in the playlist. Othertypes of weighting values, percentages, rankings, tags, or the like, maybe used to determine the proportions, arrangement, order, mix, andorganization of determine content in the playlist.

In step 350, the playlist is mixed based on the weight associated withthe content in the playlist. For example, media player 100 may organizesongs in the playlist, remove songs, add additional songs, or the like,based on the weights. While the example above illustrates organizing thesongs subsequent to adding the content to a playlist, the playlist maybe automatically created after a user provides the type and how muchcontent should be added to the playlist. FIG. 3 ends in step 360.

FIG. 4 is a block diagram illustrating playlist generation in oneembodiment according to the present invention. In this example,information associated with content in block 410 can include titleinformation, artist information, album information, chapter information,track information, concert information, predefined genre information,user provided genre information, date information, beat information,size information, or the like.

In various embodiments, a user may select or otherwise identify one ormore items of information in block 410. The selection may then be addedto a playlist in block 420. An indication may be displayed to the userthat the selection has been added to the playlist in block 430. Forexample, a user may select a song by choosing the song's title whendisplayed on a screen of a media player or portable media device. Anicon or graphic may be displayed next to the song's title on the screenindicating that the song has been added to a playlist, such as an“On-The-Go” playlist.

In some embodiments, for example, if the title of a song has beenselected, media player 100 then may immediately add the song to aplaylist. In another example, media player 100 merely provides anindication to the user that the selection has been added to a playlistand defers actually adding content to the playlist to a later stage. Inyet another example, media player 100 may commence playing of theselection to the user.

A query may be generated based on information associated with theselection in block 440. For example, media player 100 may commenceplayback of a song selected by the user, and thereafter generate thequery to determine other songs whose titles have similar keywords to thewords in the title of the selected song. In another example, mediaplayer 100 may generate a query to determine other songs that areclassified in a similar or substantially similar genre as the selectedsong. Media player 100 may also generate a query to determine othersongs, images, photos, movies, or other content stored by media player100 that satisfy a set of criteria based on attributes in theinformation of the selected song.

The query results may be added to a playlist in block 450. For example,media player 100 may add or append songs written and/or associated withthe artist of the selected song/content to the current playlist or the“On-The-Go” playlist. In another example, media player 100 may add allsongs within a given genre determined to a new playlist. Media player100 may initiate playback of items in the new playlist after playback ofthe current selection.

In various embodiments, a graphical user interface may be toggled inblock 460. For example, media player 100 may update a graphical userinterface to reflect the content that has been added to the playlist.Media player 100 may switch between one or more windows or update aportion of a window. Information indicative of the query results addedto the playlist may be displayed in block 470. Media player 100 maygenerate one or more visual representations of content in the playlist,such as lists, graphs, bar charts, pie charts, or the like. A user mayinteract with the visual representation to prune content, distributeautomatically procured content within the playlist based on one or morecriteria, or the like.

FIGS. 5A and 5B are sample graphical user interfaces (GUIs) 500 in oneembodiment according to the present invention. Referring to FIG. 5A,graphical user interface 500 can include a left-hand pane and aright-hand pane. The left-hand pane may include objects or widgets thatallow the user to interact with graphical user interface 500. Aright-hand pane may include data, information, and the like thatvisually outputs information to the user. In one example, the left-handpane may include elements of graphical user interface 500 that aredynamic in response to user input. In another example, the right-handpane may include elements of graphical user interface 500 that arestatic based on user interactions in the left pane.

List 510 may be displayed within graphical user interface 500. List 510may include information indicative of content automatically procured bymedia player 100. In this example, list 510 can include the titles ofone or more songs. List 510 may include other items or representationsassociated with attributes in information associated with content orother media assets, such as those items listed in the informationassociated with content in block 410 of FIG. 4. In some embodiments, auser may highlight or otherwise select one or more items of content, orrepresentations of content, in list 510. For example, the user mayselect one of the song titles as indicated by selection area 520.Graphical user interface 500 may further include one or morevisualizations or indications that the content has been added to theplaylist. In this example, one or more stars 530 are displayed to theright of the titles of songs that have been added to the playlist. Inanother example, graphical user interface 500 may include an indicatorthat represents the name of the playlist (or the playlist'sabbreviation) to which the selected content has been added.

In some embodiments, graphical user interface 500 can include avisualization 540 that indicates information associated with contentselected by the user that has been added to the playlist. For example,visualization 540 may include a pie chart indicating that a first set osongs represents 50% of a playlist, and a second set of songs representsthe remaining 50% of the playlist. In another example, visualization 540may include a bar chart indicating the total number of songs associatedwith each genre represented in the playlist.

Referring now to FIG. 5B, in some embodiments, graphical user interface500 can include a list of items organized with in the playlist. Forexample, list 550 may illustrate items organized within the playlist bynumber, genre, artist, or the list. An item in list 550 may include arepresentation of a song, movie, photo, image, and the like, arepresentation of an artist, album, genre, and the like. For example, animage or icon representing a musical note may be used to representindividual songs that have been added to the playlist. In anotherexample, an image or icon representing a painter's palette may be usedto represent items associated with an artist. An image or iconrepresenting a guitar, saxophone, or other musical instrument may beused to represent a particular genre. An image or icon representing arecord, CD, DVD, or movie camera may be used to represent an album, DVD,or movie/motion picture sequence.

In some embodiments, widget 560 of graphical user interface 500 mayallow a user to set or establish a weighing value associated with aparticular item in list 550. For example, widget 560 may be a slider barthat represents a value in response to the position of the slider bar.In another example, widget 560 may be a text box in which a user mayenter a particular value.

In some examples, a user can manipulate widget 560 to establish thenumber of songs to be added to a playlist. Widget 560 may be manipulatedto provide the portion/percentage of an artist or genre or other item inlist 550 that should be mixed into the playlist. For example, a user mayindicate that 25% of content to be added into the playlist from anycontent automatically procured from a selection should include contentassociated with “Artist A.” The user may indicate that another 15% ofcontent to be added into the playlist from any content automaticallyprocured from a selection should include content associated with “ArtistB.”

Accordingly, the user of a media player or portable media device may nothave to individually select all of the content associated with “ArtistA” or “Artist B” for playback. Based on the weighting values, mediaplayer 100 may automatically retrieve, portion, and mix contentassociated with “Artist A” or “Artist B” to be played according to theplaylist. Graphical user interface 500 may update visualization 540based on the weighting values associated with each item.

In various embodiments, a user may select a mode using widget 570. Themode may include information or instructions that indicate to a mediaplayer or portable media device how to organize content within theplaylist for playback. For example, media player 100 may output contentrandomly, according to a predetermined list, according to a preferenceprovided by the user or a tagging system, and the like.

FIG. 6 is a simplified block diagram of a computer system 600 that mayincorporate embodiments of the present invention. FIG. 6 is merelyillustrative of an embodiment incorporating the present invention anddoes not limit the scope of the invention as recited in the claims. Oneof ordinary skill in the art would recognize other variations,modifications, and alternatives.

In one embodiment, computer system 600 includes processor(s) 610, randomaccess memory (RAM) 620, disk drive 630, input device(s) 640, outputdevice(s) 650, display 660, communications interface(s) 670, and asystem bus 680 interconnecting the above components. Other components,such as file systems, storage disks, read only memory (ROM), cachememory, codecs, and the like may be present.

RAM 620 and disk drive 630 are examples of tangible media configured tostore data such as audio, image, and movie files, operating system code,embodiments of the present invention, including executable computercode, human readable code, or the like. Other types of tangible mediainclude floppy disks, removable hard disks, optical storage media suchas CD-ROMS, DVDs and bar codes, semiconductor memories such as flashmemories, read-only-memories (ROMS), battery-backed volatile memories,networked storage devices, and the like.

In various embodiments, input device 640 is typically embodied as acomputer mouse, a trackball, a track pad, a joystick, a wireless remote,a drawing tablet, a voice command system, an eye tracking system, amulti-touch interface, a scroll wheel, a click wheel, a touch screen, anFM/TV tuner, audio/video inputs, and the like. Input device 640 mayallow a user to select objects, icons, text, and the like, via a commandsuch as a click of a button or the like. In various embodiments, outputdevice 650 is typically embodied as a display, a printer, aforce-feedback mechanism, an audio output, a video component output, andthe like. Display 660 may include a CRT display, an LCD display, aPlasma display, and the like.

Embodiments of communications interface 670 may include computerinterfaces, such as include an Ethernet card, a modem (telephone,satellite, cable, ISDN), (asynchronous) digital subscriber line (DSL)unit, FireWire interface, USB interface, and the like. For example,these computer interfaces may be coupled to a computer network 690, to aFireWire bus, or the like. In other embodiments, these computerinterfaces may be physically integrated on the motherboard or systemboard of computer system 600, and may be a software program, or thelike.

In various embodiments, computer system 600 may also include softwarethat enables communications over a network such as the HTTP, TCP/IP,RTP/RTSP protocols, and the like. In alternative embodiments of thepresent invention, other communications software and transfer protocolsmay also be used, for example IPX, UDP or the like.

In various embodiments, computer system 600 may also include anoperating system, such as Microsoft Windows®, Linux®, Mac OS X®,real-time operating systems (RTOSs), open source and proprietary OSs,and the like.

FIG. 6 is representative of a media player and/or computer systemcapable of embodying the present invention. It will be readily apparentto one of ordinary skill in the art that many other hardware andsoftware configurations are suitable for use with the present invention.For example, the media player may be a desktop, portable, rack-mountedor tablet configuration. Additionally, the media player may be a seriesof networked computers. Moreover, the media player may be a mobiledevice, an embedded device, a personal digital assistant, a smartphone,and the like. In still other embodiments, the techniques described abovemay be implemented upon a chip or an auxiliary processing board.

The present invention can be implemented in the form of control logic insoftware or hardware or a combination of both. The control logic may bestored in an information storage medium as a plurality of instructionsadapted to direct an information-processing device to perform a set ofsteps disclosed in embodiments of the present invention. Based on thedisclosure and teachings provided herein, a person of ordinary skill inthe art will appreciate other ways and/or methods to implement thepresent invention.

The embodiments discussed herein are illustrative of one or moreexamples of the present invention. As these embodiments of the presentinvention are described with reference to illustrations, variousmodifications or adaptations of the methods and/or specific structuresdescribed may become apparent to those skilled in the art. All suchmodifications, adaptations, or variations that rely upon the teachingsof the present invention, and through which these teachings haveadvanced the art, are considered to be within the scope of the presentinvention. Hence, the present descriptions and drawings should not beconsidered in a limiting sense, as it is understood that the presentinvention is in no way limited to only the embodiments illustrated.

The above description is illustrative but not restrictive. Manyvariations of the invention will become apparent to those skilled in theart upon review of the disclosure. The scope of the invention should,therefore, be determined not with reference to the above description,but instead should be determined with reference to the pending claimsalong with their full scope or equivalents.

What is claimed is:
 1. A method for generating playlists using an electronic device, the method comprising: receiving, by the electronic device, a selection of a first media item; determining, by the electronic device, a plurality of metadata items associated with the first media item; generating, by the electronic device, a playlist comprising a first plurality of recommended media items based on the plurality of metadata items attributes associated with the first media item; displaying, by the electronic device, on a display of the electronic device: a list of metadata items associated with media items in the playlist, and a plurality of user operable controls, wherein each user operable control is associated with a single metadata item from the list of metadata items, and wherein the user operable controls are usable to change composition of the playlist; receiving, by the electronic device, input indicative of a weighting value to assign to each metadata item from the list of metadata items, wherein the input is generated by operation of the user operable controls; dynamically updating, by the electronic device, the playlist to include a second plurality of media items selected based at least in part on the the received weighting value for each metadata item; dynamically updating types of metadata items reflected in the plurality of user operable controls based on an updated list of metadata items associated with the updated playlist; displaying, on the display of the electronic device, a chart indicative of composition of the playlist; and dynamically updating, by the electronic device, the chart in response to a new input received via operation of any of the user operable controls to indicate a new composition of the playlist based on the new input.
 2. The method of claim 1 wherein the plurality of metadata items include at least one of title information, size information, date information, genre information, album information, or artist information.
 3. The method of claim 1 further comprising: generating, by the electronic device, an indication informing the user that the playlist is updated.
 4. The method of claim 1 wherein the playlist comprises a nested playlist.
 5. A method implemented using a handheld electronic device for generating playlists, the method comprising: receiving, by the handheld electronic device, a selection of a media item stored on a storage medium of the handheld electronic device; playing, by the handheld electronic device, the media item; determining, by the handheld electronic device, a plurality of metadata items associated with the media item; determining, by the handheld electronic device, a first playlist based on the a plurality of metadata items associated with the media item, wherein the first playlist includes a first set of media items each having at least one attribute from among the plurality of metadata attributes; displaying, by the handheld electronic device, in a first section of a display of the handheld electronic device, a plurality of user operable controls for manipulating composition of the first playlist, wherein each user operable control is associated with a single metadata attribute from the plurality of metadata items; receiving, by the handheld electronic device, user input indicative of a weighting value to assign to each metadata item to be included in a second playlist, the user input being provided by operating the one or more user operable controls; generating, by the handheld electronic device, a second playlist based on the user input; displaying, by the handheld electronic device, in a second section of the display of the handheld electronic device, a chart corresponding to composition of the second playlist; dynamically updating types of metadata items reflected in the plurality of user operable controls based on metadata items associated with the second play list; and dynamically updating, by the handheld device, the chart in response to a new input received via operation of any of the plurality of user operable controls to indicate a new composition of the second play list based on the new input.
 6. The method of claim 5 wherein determining the first playlist based on the one or more metadata items for the media item comprises determining the first playlist based on at least one of title information, size information, date information, genre information, album information, or artist information associated with the media item.
 7. An apparatus comprising: a processor; a user interface coupled to the processor; and a memory configured to store a set of instructions which when executed by the processor causes the processor to: receive selection of a media item; determine at least one metadata item associated with the media item, wherein the media item is associated with a plurality of metadata items; select a first playlist based on the at least one metadata item, the first playlist comprising a first set of media items; display, in a first section of the user interface, a plurality of user operable controls for changing a composition of the first existing playlist, wherein each user operable control is associated with a single metadata item attribute from the plurality of metadata items; receive user input indicative of a weighting value to assign to each metadata item, wherein the user input is received as a result of operation of the plurality of user operable controls; generate a new playlist based on the user input; and dynamically update the types of metadata items reflected in the plurality of user operable controls based on an updated list of metadata items associated with the new playlist, displaying, on the display of the electronic device, a chart indicative of composition of the playlist; and dynamically updating, by the electronic device, the chart in response to a new input received via operation of any of the user operable controls to indicate a new composition of the playlist based on the new input.
 8. A portable media device comprising: an user interface; a storage medium coupled to the user interface; and a processor coupled with the user interface and configured to: receive input via the user interface, the input indicative of selection of a first media item; determine a plurality of metadata items associated with the first media item, wherein the plurality of metadata items includes at least an artist associated with the media item and a genre for the media item; select a plurality of media items based on the metadata associated with the first media item and generate a first play list including the plurality of media items; display, in a first section of the user interface, one or more metadata items associated with the selected plurality of media items; display, in a second section of the user interface, a plurality of user operable controls, wherein each user operable control is associated with a single metadata item from the one or more metadata items, the plurality of user operable controls being operable to change composition of the first playlist; receive user input indicative of a weighting value to assign to each metadata item represented in the user operable controls to be included in a modified playlist, the user input resulting from operation of the plurality of user operable controls; generate the modified playlist based on the user input; and dynamically update the types of metadata items reflected in the plurality of user operable controls based on a modified list of metadata items associated with the modified playlist, displaying, on the display of the electronic device, a chart indicative of composition of the playlist; and dynamically updating, by the electronic device, the chart in response to a new input received via operation of any of the user operable controls to indicate a new composition of the playlist based on the new input.
 9. The portable media device of claim 8 wherein the metadata items comprises title information, size information, date information, genre information, album information, or artist information.
 10. The method of claim 5 wherein the weighting value is indicative of a user preference for the metadata item.
 11. The method of claim 1 wherein selecting the first plurality of media items includes; comparing the one or more metadata items associated with the first media item with the metadata items of each of the first plurality of media items.
 12. The method of claim 1 wherein the chart includes indication of total number of media items associated with each metadata item that are included in the second play list.
 13. A non-transitory computer readable medium including instructions which when executed by a processor in an electronic device, causes the electronic device to perform a method comprising: receiving a selection of a first media item; determining a plurality of metadata items associated with the first media item; generating a playlist comprising a first plurality of recommended media items based on the plurality of metadata one or more items attributes associated with the first media item displaying on a display of the electronic device: a list of metadata items associated with media items in the playlist, and a plurality of user operable controls, wherein each user operable control is associated with a single metadata item from the list of metadata items, and wherein the user operable controls are usable to change composition of the playlist; receiving input indicative of a weighting value to assign to each metadata item from the list of metadata items wherein the input is generated by operation of the user operable controls; dynamically updating, by the electronic device, the playlist to include a second plurality of media items, selected based at least in part on the the received weighting value for each metadata item; dynamically updating types of metadata items reflected in the plurality of user operable controls based on an updated list of metadata items associated with the updated playlist; displaying, on the display of the electronic device, a chart indicative of composition of the playlist, and dynamically updating the chart in response to a new input received via operation of any one of the user operable controls to indicate a new composition of the playlist based on the new input. 